package com.etc.service;

import com.etc.dao.UserInfoDao;
import com.etc.util.MD5;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.etc.entity.User;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class userInfoServiceImpl implements UserInfoService{
    //调用持久层
    @Autowired
    UserInfoDao dao;

    /**
     * 根据用户编号修改状态
     * 邓玲琪
     * @param userId 用户编号
     * @param status 用户对象
     * @return boolean int>0 为True  否则为False
     */
    @Override
    public int modifyStatus(String userId, int status) {
        return dao.modifyStatus(userId,status);
    }
    /**
     * 分页 按条件模糊查找所有用户信息：用户名，姓名，电话
     * 邓玲琪
     * @param userName userRealName userTel
     *@param pageNum
     *@param pageSize
     *@return pageInfo
     */
    @Override
    public PageInfo<User> getqueryAllUserInfo(int pageNum,int pageSize,String userName,String userRealName,String userTel) {
        //1.开始分页
        PageHelper.startPage(pageNum, pageSize);
        //2.执行查询所有用户信息
        List<User> list = dao.queryAllUserInfo(userName,userRealName,userTel);
        //3.通过pageInfo进行包装,PageInfo包含了非常丰富的分页属性
        PageInfo<User> pageInfo = new PageInfo<User>(list);
        return pageInfo;
    }

    /**
     * 用户登录
     * @param userName
     * @param userPwd
     * @return
     */
    @Override
    public User getLogin(String userName, String userPwd) {
        String userPwds=MD5.getMD5(userPwd);
        return dao.login(userName,userPwds);
    }

    /**
     * 用户注册
     * @param user
     * @return
     */
    @Override
    public boolean addUser(User user) {
        user.setUserPwd(MD5.getMD5(user.getUserPwd()));
        int n=dao.register(user);
        return n>0;
    }
    /**
     * 初始化密码
     * 邓玲琪
     * @return boolean int>0 为True  否则为False
     */
    @Override
    public int InitializeTheUserPwd(String userId) {
        String userPwd=MD5.getMD5("123456");
        return dao.InitializeTheUserPwd(userId,userPwd);
    }

    @Override
    public boolean updateUserInfo(User user) {
        int n = dao.updateUserInfo(user);
        return n>0;
    }

    @Override
    public boolean updateUserPassword(String userId, String password, String newPassword) {
        String passwords=MD5.getMD5(password);
        String newPasswords=MD5.getMD5(newPassword);
        int n = dao.updateUserPassword(userId, passwords, newPasswords);
        return n>0;
    }
}
